package com.inei.evaluaciondelacapacitacion.tools;

import java.io.File;
import java.io.FileOutputStream;
import java.util.List;

import org.apache.http.protocol.HTTP;
import org.xmlpull.v1.XmlSerializer;

import android.content.Context;
import android.os.Environment;
import android.telephony.TelephonyManager;
import android.util.Xml;

import com.inei.evaluaciondelacapacitacion.model.entity.Respuesta2;
import com.inei.evaluaciondelacapacitacion.model.entity.Respuesta2_Tema;

public class Exportar {

	Context context;

	public Exportar(Context context) {
		this.context = context;
	}

	public boolean xml(Respuesta2 r, List<Respuesta2_Tema> l) {
		File file = null;
		File ruta = null;
		String imei = "";

		try {
			TelephonyManager tm = (TelephonyManager) context
					.getSystemService(Context.TELEPHONY_SERVICE);
			imei = tm.getDeviceId();
		} catch (Exception e) {
			imei = "";
		}

		try {
			File root = Environment.getExternalStorageDirectory();
			ruta = new File(root, "/Evaluacion de la Capacitacion/");
			if (!ruta.exists()) {
				ruta.mkdirs();
			}
			file = new File(ruta, "E_Capacitacion.xml");
			FileOutputStream fos = new FileOutputStream(file);
			XmlSerializer xml = Xml.newSerializer();
			xml.setOutput(fos, HTTP.UTF_8);
			xml.startDocument(HTTP.UTF_8, true);

			xml.startTag("", "script");
			xml.startTag("", "respuesta2");

			if (imei != null) {
				xml.startTag("", "Tablet_id");
				xml.text(imei);
				xml.endTag("", "Tablet_id");
			}

			xml.startTag("", "respuesta_id");
			xml.text("" + r.getRespuesta_id());
			xml.endTag("", "respuesta_id");

			xml.startTag("", "formato_id");
			xml.text("" + r.getFormato_id());
			xml.endTag("", "formato_id");

			xml.startTag("", "etapa");
			xml.text("" + 2);
			xml.endTag("", "etapa");
			
			xml.startTag("", "ape_paterno");
			xml.text("" + r.getApe_paterno());
			xml.endTag("", "ape_paterno");

			xml.startTag("", "ape_materno");
			xml.text("" + r.getApe_materno());
			xml.endTag("", "ape_materno");

			xml.startTag("", "nombre");
			xml.text("" + r.getNombre());
			xml.endTag("", "nombre");

			xml.startTag("", "dni");
			xml.text("" + r.getDni());
			xml.endTag("", "dni");

			xml.startTag("", "sede");
			xml.text("" + r.getSede());
			xml.endTag("", "sede");

			xml.startTag("", "P11");
			xml.text("" + r.getP11());
			xml.endTag("", "P11");

			xml.startTag("", "P12");
			xml.text("" + r.getP12());
			xml.endTag("", "P12");

			xml.startTag("", "P13");
			xml.text("" + r.getP13());
			xml.endTag("", "P13");

			xml.startTag("", "P14");
			xml.text("" + r.getP14());
			xml.endTag("", "P14");

			xml.startTag("", "P15");
			xml.text("" + r.getP15());
			xml.endTag("", "P15");

			xml.startTag("", "P16");
			xml.text("" + r.getP16());
			xml.endTag("", "P16");

			xml.startTag("", "P1_obs");
			xml.text("" + r.getP1_obs());
			xml.endTag("", "P1_obs");

			xml.startTag("", "P21");
			xml.text("" + r.getP21());
			xml.endTag("", "P21");

			xml.startTag("", "P22");
			xml.text("" + r.getP22());
			xml.endTag("", "P22");

			xml.startTag("", "P221");
			xml.text("" + r.getP221());
			xml.endTag("", "P221");

			xml.startTag("", "P221_otro");
			xml.text("" + r.getP221_otro());
			xml.endTag("", "P221_otro");

			xml.startTag("", "P23");
			xml.text("" + r.getP23());
			xml.endTag("", "P23");

			xml.startTag("", "P24");
			xml.text("" + r.getP24());
			xml.endTag("", "P24");

			xml.startTag("", "P25");
			xml.text("" + r.getP25());
			xml.endTag("", "P25");

			xml.startTag("", "P251a");
			xml.text("" + r.getP251a());
			xml.endTag("", "P251a");

			xml.startTag("", "P251b");
			xml.text("" + r.getP251b());
			xml.endTag("", "P251b");

			xml.startTag("", "P251c");
			xml.text("" + r.getP251c());
			xml.endTag("", "P251c");

			xml.startTag("", "P2_obs");
			xml.text("" + r.getP2_obs());
			xml.endTag("", "P2_obs");

			xml.startTag("", "P31");
			xml.text("" + r.getP31());
			xml.endTag("", "P31");

			xml.startTag("", "P311a");
			xml.text("" + r.getP311a());
			xml.endTag("", "P311a");

			xml.startTag("", "P311b");
			xml.text("" + r.getP311b());
			xml.endTag("", "P311b");

			xml.startTag("", "P311c");
			xml.text("" + r.getP311c());
			xml.endTag("", "P311c");

			xml.startTag("", "P311d");
			xml.text("" + r.getP311d());
			xml.endTag("", "P311d");

			xml.startTag("", "P311_otro");
			xml.text("" + r.getP311_otro());
			xml.endTag("", "P311_otro");

			xml.startTag("", "P4");
			xml.text("" + r.getP4());
			xml.endTag("", "P4");

			xml.startTag("", "observacion");
			xml.text("" + r.getObservacion());
			xml.endTag("", "observacion");

			xml.startTag("", "sugerencia");
			xml.text("" + r.getSugerencia());
			xml.endTag("", "sugerencia");

			xml.startTag("", "fec_crea");
			xml.text("" + r.getFec_crea());
			xml.endTag("", "fec_crea");

			xml.startTag("", "fec_modi");
			xml.text("" + r.getFec_modi());
			xml.endTag("", "fec_modi");

			xml.endTag("", "respuesta2");

			for (int i = 0; i < l.size(); i++) {
				xml.startTag("", "respuesta2_tema");

				xml.startTag("", "respuesta_id");
				xml.text("" + l.get(i).getRespuesta_id());
				xml.endTag("", "respuesta_id");

				xml.startTag("", "tema_id");
				xml.text("" + l.get(i).getTema_id());
				xml.endTag("", "tema_id");

				xml.startTag("", "P2");
				xml.text("" + l.get(i).getP2());
				xml.endTag("", "P2");

				xml.startTag("", "P3_H");
				xml.text("" + l.get(i).getP3_H());
				xml.endTag("", "P3_H");

				xml.startTag("", "P3_M");
				xml.text("" + l.get(i).getP3_M());
				xml.endTag("", "P3_M");

				xml.startTag("", "fec_crea");
				xml.text("" + l.get(i).getFec_crea());
				xml.endTag("", "fec_crea");

				xml.startTag("", "fec_modi");
				xml.text("" + l.get(i).getFec_modi());
				xml.endTag("", "fec_modi");

				xml.endTag("", "respuesta2_tema");
			}

			xml.endTag("", "script");
			xml.endDocument();
			fos.close();

		} catch (Exception e) {
			return false;
		}
		return true;
	}

}
